#! /usr/bin/env python  
# -*- coding: utf-8 -*-  
# __author__ = "shuke"  
# Date: 2018/5/13  
import hashlib 
import json
import re
import os
import urllib.request
import urllib.parse
import os.path
from urllib.parse import urlparse

class Tool:

    # 32位MD5加密
    def md5_32(text):
        # 使用MD5创建一个散列对象
        md5 = hashlib.md5()
        # 添加数据进行散列
        md5.update(text.encode())
        # 返回32位的散列值
        return md5.hexdigest()

    # json字符串解析
    def json_decode(text):
        # 使用json.loads()解析JSON数据
        data = json.loads(text)
        return data

    # 字符串中提取图片连接
    def extract_image_urls(text):
        # 正则表达式用于匹配常见的图片格式
        image_urls = re.findall(r'(http?://[^\s]+\.(png|jpg|jpeg|gif|bmp))', text)
        return image_urls
    
    def extract_image_urls2(text):
        # 正则表达式用于匹配常见的图片格式
        image_url_regex = re.compile(r'(?<=img src=")(.*?)(?=")')
        # 使用findall方法找到所有匹配的图片链接
        image_urls = image_url_regex.findall(text)
        return image_urls

    # 字符串替换: search_text是搜索的字符串 replace_text是要替换成的字符串
    def str_replace(text,search_text,replace_text):
        new_string = text.replace(search_text, replace_text)
        return new_string

    # 获取url的文件名
    def get_file_name(url):
        parsed_url = urllib.parse.urlsplit(url)
        file_name = os.path.basename(parsed_url.path)
        return file_name

    # 获取url的域名部分（包含http 或者 https）
    def get_domain_with_protocol(url):
        parsed_url = urlparse(url)
        return f"{parsed_url.scheme}://{parsed_url.hostname}"

    # 创建目录
    def mkdir_directory(dir_path):
        try:
            # 如果目录不存在，则递归地创建目录
            if not os.path.exists(dir_path):
                os.makedirs(dir_path)
                print(f"目录 '{dir_path}' 已创建")
            #else:
                #print(f"目录 '{dir_path}' 已经存在")    
        except OSError as e:
            print(f"创建目录 '{dir_path}' 时出错: {e}")

    # 文件下载
    def download_file(url,filename):
        #root_path = 'D:/wwwroot/Python'
        # 创建目录
        #domain = self.get_domain_with_protocol(url)
        #filename = self.get_file_name(url)
        #dir_path = self.str_replace(url,domain,'')
        #dir_path2 = str_replace(dir_path,filename,'')
        #mkdir_directory(root_path+dir_path2)

        #filenamePaht = str_replace(url,domain,'')
        try:
            # 如果目录不存在，则递归地创建目录
            print("下载图片："+url)
            urllib.request.urlretrieve(url, filename)
            #print(f"图片下载成功: "+filenamePaht)
            return True
        except OSError as e:
            print(f"图片下载失败时出错: {e}")
            return False

    # 判断是否为空    
    def is_empty(text):
        lenght = len(text)    
        if lenght == 0 or text is None or text == "":
            return True
        else:
            return False

    # 一个字符串是否包含另外一个字符串    
    def is_contained(string, substring):
        return substring in string    
    
#img_url = 'https://fy.qctchina.com/question-acquisition-eec/book/thirdimport/202102051135586121007/images/1968757103778791424/1969309812772941838/image5.png'
#download_file(img_url)








